package com.yonyou.cyxdms.sysAuth.service.mapper;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yonyou.cyx.framework.dao.base.SuperMapper;
import com.yonyou.cyxdms.sysAuth.service.dto.CompanyDTO;
import com.yonyou.cyxdms.sysAuth.service.entity.CompanyPO;
import com.yonyou.cyxdms.sysAuth.service.vo.companyorg.MergeVO;
import com.yonyou.cyxdms.sysAuth.service.vo.weChat.SmsWxVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 公司表，车厂、经销商公司、改装厂公司等所 Mapper 接口
 * </p>
 *
 * @author maxingjian
 * @since 2019-08-26
 */
public interface CompanyMapper extends SuperMapper<CompanyPO> {

    /**
     * 查询-所属经销商公司
     * @author adu
     * @since 2019/10/12
     */
    public List<CompanyPO> getDistributorList(Page<CompanyPO> page, @Param("params") Map<String, Object> queryCondition);

    /**
     * 查看--经销商公司
     * @param companyId
     * @since 2019/10/17
     */
    public CompanyDTO getCompanyId(@Param("companyId") Integer companyId, @Param("appId") String appId, @Param("dataType") Long dataType);
    /**
     * 查询-所属经销商公司
     * @return
     */
    List<Map<String, Object>> getDistributor(@Param("appId") String appId, @Param("companyType") Integer companyType);

    List<Map<String, Object>> getDistributorALL();

    /**
     * 查询-所属经销商公司（售后）
     *
     * @return
     */
    List<Map<String, Object>> getDistributors(@Param("appId") String appId, @Param("companyType") Integer companyType);

    Long findFactoryIdByAppId(@Param("appId") String appId);

    Integer queryComTypeById(@Param("companyId") Long companyId);

    Integer queryFactoryIdByAppId(@Param("appId") String appId);

    /**
     * 查询-下发经销商
     * 2019-10-29 adu
     */
    public List<Map<String, Object>> getDealerInfos(Page<Map<String, Object>> page, @Param("params") Map<String, Object> queryCondition);

    MergeVO getFactoryCom(@Param("appId") String appId);

    Integer findDealerTypeById(@Param("companyId") Long companyId);

    SmsWxVo getSmsWx(@Param("factoryId") Long factoryId);

    String getGroupCodeByAppId(@Param("appId") String appId);

    List<CompanyDTO> getComInfoListByPage(@Param("params")CompanyDTO companyDTO);


    CompanyDTO selectByCompanyCode(@Param("companyCode") String companyCode);

    /**
     * 根据公司统一社会信息用代码匹配SAP客户编号
     *
     * @param credentialsNo
     * @return
     */
    List<String> matchingSapCustomerNo(@Param("credentialsNo") String credentialsNo);
}
